package com.kfm.loginIp.util;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * @author Aurora雪
 */
public class MailUtil {
    public static boolean endEmail(String email) {
        // 设置邮件服务器的属性
        Properties properties = new Properties();// 用于设置邮件服务器的属性
        properties.put("mail.smtp.host", "smtp.qq.com");// 设置邮件服务器
        properties.put("mail.smtp.port", "465");// 设置邮件服务器端口
        properties.put("mail.smtp.auth", "true");// 设置验证方式
        properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");// 设置加密方式
        properties.put("mail.smtp.socketFactory.fallback", "false");// 设置是否允许使用SSL
        properties.put("mail.smtp.socketFactory.port", "465");// 设置端口

        // 获取默认的Session对象
        Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {// 获取默认的验证方式
                // 用户名、授权码
                return new PasswordAuthentication(Constant.EMAIL_FORM, Constant.EMAIL_PASSWORD);
            }
        });

        try {
            // 创建一个默认的MimeMessage对象
            MimeMessage message = new MimeMessage(session);

            // 设置发件人
            message.setFrom(new InternetAddress(Constant.EMAIL_FORM));

            // 设置收件人
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));

            // 设置邮件主题
            message.setSubject(Constant.SIGN_NAME);

            // 设置邮件正文
            message.setText("<a href='http://10.0.4.101:8080/user/emailRetrieve?email="+email+"'>点击这里重置密码</a>");

            // 发送邮件
            Transport.send(message);
            System.out.println("邮件已成功发送！");
            return true;
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return false;
    }
}
